package com.wrial.simple;
/*
 * @Author  Wrial
 * @Date Created in 22:27 2020/3/25
 * @Description  整数反转,核心是防止数据的溢出，如果正数溢出就会变为负数，负数溢出就会从头开始
 * 因此使用前一次*10/10 看看等不等于原来的值，如果不等于就溢出了
 */

public class LeetCode_07 {


    public int reverse(int x) {

        int ans = 0 ;
        int flag;
        flag = x < 0 ? -1:1;   // 对负数进行记录和处理
        x *= flag;

        // 进行数学运算
        while( x>0 ){
            int temp = ans;
            temp *= 10;
            temp += x%10;
            x /= 10;
            // 判断是否溢出
            if((temp/10)!=ans) return 0;
            ans = temp;
        }

        // 返回的时候不要忘记符号
        return ans * flag ;

    }

}
